<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
//数组(array)是按次序排列的一组值，每个值的位置都有编号（从0开始,位置为下标），用方括号表示
      var arr = ["sxt","baizhan","it"];
      console.log(arr[0]);

      var arr1 = [];
      arr1[0] = "i";
      arr1[1] = "2";
      console.log(arr1);
      //内容不受限制
      var info = [20,"faf",true];
      console.log(info);
      //数组里面还可以放数组(可以是多维数组)
      var toarr = ["fa",["dW",20]];
      console.log(toarr);
      //下标：赋值，读取
      var user = ["fas","cfadf","fcad"];
      console.log(user[0]);
      console.log(user[5]);//数组越界，返回undefined
      //length属性
      console.log(user.length);
//数组的遍历（可以使用for循环或while循环）
      var  username = ["dwad","cadf","ca","ff"];
      //循环-》遍历
      //length数组长度
      for(var i=0;i<username.length;i++){
        console.log(username[i]);
      }
      var i = 0;
      while(i<username.length){
         console.log(username[i]);
         i++;
      }

      for(var i in username){
        console.log(username[i]);
      }
//数组的静态方法Array.isArray():返回一个布尔值，表示参数是否为数组，它可以弥补typeOf的不足
     var num = 10;
     console.log(typeof num);

     var arr3 = ["dwsad","afaf","fef"];
     console.log(typeof arr3);
     console.log(Array.isArray(arr3));
//数组方法push()/pop()
     //push()方法用于在数组的末尾增加一个或多个元素，并返回添加之后新数组的长度，会改变原数组
     var arr4 = ["afdas","fafa"];
     arr4.push("dafa");
     console.log(arr4); 
     //pop()方法用于删除数组的末尾元素，会改变原数组
     arr4.pop();
     console.log(arr4);
// 数组方法shift()/unshift()
    //shift()方法用于删除数组的第一个元素，并返回该元素，会改变原数组长度
    var arr5 = ["dwad","das","ascdas"];
    arr5.shift();
    console.log(arr5);
    //shift()可以清空数组元素
    var arr6 = [];
    console.log(arr6.shift());

    var list = [1,2,3,4,5];
    var item;
    while(item = list.shift()){
        console.log(item);
    }
    console.log(list);
    //unshift()向头部添加一个或多个新的元素，会改变原数组的长度
    var arr7 = [12,23];
    arr7.unshift(321,133,3);
    console.log(arr7);

//数组方法join():以指定参数作为分隔符，将所有数组成员连成一个字符串返回，
// 如果不提供参数，默认逗号分隔
    var arr8 = [123,34,432,null,undefined];
    console.log(arr8.join());
    console.log(arr8.join("|"));
    console.log(arr8.join(""));
    //split()和join()两种方法可以进行字符串与数组之间的转换
    var arr9 = [12,23];
    var result = arr9.join(" ");
    console.log(result);
    console.log(result.split(" "));

//数组方法concat方法用于数组的合并，他将新数组的成员，添加到原数组成员
// 的后部，然后返回一个新数组，原数组不变(可以合并多个数组)
     var x1 = ["scfs",12,"sfsa"];
     var x2 = ["fsaf","csd",90];
     console.log(x1.concat(x2));
     //除了数组作为参数，concat还接受其他类型的值作为参数，添加到目标数组尾部
     var x3 = [10];
     console.log(x3.concat(20,30,40));

//数组方法reverse方法：用于颠倒排列数组元素，返回改变后的数组，该方法会改变原数组
    var x4 = [12,"dwwd","daed","dasda"];
    console.log(x4.reverse());
    console.log(x4);
    //helloWorld字符串反转显示：
    var x5 = "helloworld";
    var x6=x5.split("");
    x6.reverse();
    var result = x6.join("");
    console.log(result);

//数组indexOf方法：用于查找数组中给定元素第一次出现的位置，没有则返回-1；
   var x7 = [10,12,123,2323];
   if(x7.indexOf(12)>-1){
       console.log("存在");
   }else{
       console.log("不存在");
   }
   //indexOf接受第二个参数，表示搜索开始的位置。
   console.log(x7.indexOf(12,2));




    </script>
</body>
</html>